#ifndef VERTEX_H_
#define VERTEX_H_

#include "Matrix4x4.h"
#include "Point.h"
#include "Matrix3x3.h"

class Vertex
{
public:
	Vertex(const SPoint& p, const Vector& n);
	~Vertex();
	
	void precalculate(const Matrix4x4& p, const Matrix3x3& v);
	
	inline const SPoint& getPoint(void) const { return point; }
	inline const Vector& getNormal(void) const { return normal; }
protected:
	SPoint point;
	Vector normal;
private:
	Vertex(const Vertex& copy) : point(copy.point), normal(copy.normal) {}
};

#endif /*VERTEX_H_*/
